;
(function () {
    init();
})();

function init() {
    bindEvent();
    updateCode();
}

function bindEvent() {
    bindCodeBtn();
    bindLoginBtn();
    bindEnterKey();
}

function bindEnterKey() {
    $(document).keydown(function (event) {
        // 回车登录
        if (event.keyCode == 13) {
            $('#loginBtn').click();
        }
    });
}

function bindCodeBtn() {
    $('.code_box').on('click', function () {
        updateCode();
    });
}

function updateCode() {
    $('#code').css({
        backgroundImage: 'url(\"captcha.jpg?t=' + $.now() + '\")'
    });
}

function bindLoginBtn() {
    $('#loginBtn').on('click', function () {
        if (verification()) {
            // TODO: 登录
            var data = "username=" + $('.account input').val() + "&password=" + $('.password input').val() + "&captcha=" + $('.code input').val();
            $.ajax({
                type: "POST",
                url: "sys/login",
                data: data,
                dataType: "json",
                success: function (result) {
                    if (result.code == 0) { //登录成功
                        window.location.href = 'index.html';
                    } else {
                        updateCode();
                        MSG.error(result.msg);
                    }
                }
            });
        }
    });
}

function verification() {
    if (!$('.account input').val()) {
        console.error('账号不能为空！');
        MSG.error('账号不能为空！');
        updateCode();
        return false;
    }
    if (!$('.password input').val()) {
        console.error('密码不能为空！');
        MSG.error('密码不能为空！');
        updateCode();
        return false;
    }
    if (!$('.code input').val()) {
        console.error('验证码不能为空！');
        MSG.error('验证码不能为空！');
        updateCode();
        return false;
    }
    return true;
}
//用户名正则，4到16位（字母，数字，下划线，减号）
function checkAccount() {
    return /^[a-zA-Z0-9_-]{4,16}$/.test($('.account input').val());
}
// 密码强度正则，最少6位，包括至少1个大写字母，1个小写字母，1个数字，1个特殊字符
function checkPasswrod() {
    return /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/.test($('.password input').val())
}

function checkCode() {
    return /^[0-9 | A-z]{6}$/.test($('.code input').val());
}

window.MSG = {
    error: function (msg) {
        myalert(msg, 'error');
    },
    info: function (msg) {
        myalert(msg, 'info');
    },
    warn: function (msg) {
        myalert(msg, 'warn');
    },
    success: function (msg) {
        myalert(msg, 'success');
    },
    timer: null
}

function myalert(content, type) {
    if (window.MSG.timer) {
        removeTimer();
    }
    $('.alertContent').text(content);
    $('.alertIcon').removeClass().addClass('alertIcon').addClass(type);
    $('.alert').addClass('alertShow');
    window.MSG.timer = setTimeout(function () {
        $('.alert').removeClass('alertShow');
    }, 1200);
}

function removeTimer() {
    $('.alert').removeClass('alertShow');
    clearTimeout(window.MSG.timer);
}